Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

156
Visualizações
¿Cómo lanzar excepciones "expresivas" / amigables con la consola en JavaScript?

Noob de JavaScript aquí... Estoy explorando varias opciones para lanzar excepciones.

Lanzar una cadena/valor primitivo

Esto parece ser una mala práctica por varias razones (captura, stacktrace, ...)

Error uso

 throw new Error("bad times")

Este parece ser un enfoque común, pero no soy un gran admirador porque no puedo agregar información adicional fácilmente. no puedo por ejemplo hacer

 throw new Error("bad times", { reason: strangeObject })

Podría JSON.stringify la información adicional, pero me gusta cuando puedo expandir/contraer el objeto en la consola.

Por lo que puedo decir, no avanzaré más con excepciones personalizadas/subclases de error.

Lanzar { msg: "bad times", reason: strangeObject }

Esto me permite expandir/contraer strangeObject muy bien en la consola. Para que las excepciones a lo largo de mi aplicación sean consistentes, necesitaría repetir la parte msg: en todas partes, de lo cual no soy fanático.

Terminé optando por el último enfoque, solo para descubrir que ESLinter se queja de este enfoque:

Se esperaba que se lanzara un objeto de error no-throw-literal

Entonces, mi pregunta es básicamente : ¿Puedo usar Error (o subclases de Error personalizadas) de una manera amigable para la consola, es decir, admitir expandir/colapsar?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Me he conformado con una excepción personalizada y un controlador window.onerror :

 class MyAppError extends Error { constructor(msg, details) { super(msg) this.details = details } } window.onerror = function(message, source, lineno, colno, error) { if (error instanceof MyAppError) { console.error(message, error.details) return true } return false } function throwSomething() { throw new MyAppError("I made a mess", { someDetail: "a value", otherStuff: "another value" }); } console.log("Hello World"); throwSomething();

( JSFiddle )

El resultado se ve así en Firefox y Chrome, con lo que estoy bastante contento.

ingrese la descripción de la imagen aquí

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda